package com.yidu.TAManagement.service.impl;

import com.yidu.BusinessParament.entity.Fund;
import com.yidu.TAManagement.entity.Ta;
import com.yidu.TAManagement.mapper.TaMapper;
import com.yidu.TAManagement.service.TaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *TA交易数据实现层
 * @author 赵俊豪
 * @date 2022/12/11 13:33
 **/
@Service
public class TaServiceImpl implements TaService {
    @Autowired
    private TaMapper taMapper;

    @Override
    /**
     *  查询TA表
     * @param page 当前页
     * @param limit 每页显示数
     * @param ta ta数据
     * @return
     */
    public List<Ta> SelectTa(int page, int limit, Ta ta) {
        //定义一个map集合
        Map map=new HashMap ();
        map.put("page",(page-1)*limit);
        map.put("limit",limit);
        map.put("strWhere",buildStrWhere(ta));
        return taMapper.SelectTa (map);
    }

    @Override
    /**
     * 查询TA行数
     * @param ta ta数据
     * @return count TA的行数
     */
    public int SelectTaCount(Ta ta) {
        Map map=new HashMap();
        map.put("strWhere",buildStrWhere(ta));
        int count =taMapper.SelectTaCount (map);
        return count;
    }

    @Override
    /**
     * 删除TA数据
     * @param taId TAId
     * @return
     */
    public int DeleteTa(String taId) {
        //将id转为数据
        String[] split = taId.split (",");
        //创建存放id的集合
        ArrayList<Object> list = new ArrayList<Object> ();
        for (String id : split) {
            //将id存入集合
            list.add (id);
        }
        return taMapper.DeleteTa (list);
    }

    @Override
    /**
     * 新增TA交易数据
     * @param ta TA对象
     * @return
     */
    public int InsertTa(Ta ta) {
        return taMapper.InsertTa (ta);
    }

    @Override
    /**
     * 查询最大ID的方法
     * @return
     */
    public String SelectMaxtaId() {
        return taMapper.SelectMaxtaId ();
    }

    @Override
    /**
     * 修改TA交易数据
     * @param ta TA对象
     * @return
     */
    public int UpdateTa(Ta ta) {
        return taMapper.UpdateTa (ta);
    }

    @Override
    /**
     * 查询表是否有数据
     * @return
     */
    public int TALength() {
        return taMapper.TALength ();
    }

    @Override
    /**
     *根据交易类型和交易时间和总金额删除ta交易数据
     * @param dealType 交易类型
     * @param dealTime 交易时间
     * @param money 总金额
     * @return 删除的数据
     */
    public int DeleteTaLmport(Integer dealType, String dealTime, double money) {
        Map map = new HashMap ();
        map.put ("dealType",dealType);
        map.put ("dealTime",dealTime);
        map.put ("money",money);
        return taMapper.DeleteTaLmport (map);
    }

    /**
     * 生成条件字符串
     * @param ta 生成条件的参数
     * @return 条件字符串
     */
    public String buildStrWhere(Ta ta){
        StringBuffer strWhere=new StringBuffer("");
        //交易时间
        if(ta.getDealTime()!=null && !ta.getDealTime().equals(""))
        {
            strWhere.append(" and dealTime like '%"+ta.getDealTime ()+"%'");
        }
        //交易类型
        if(ta.getDealType ()!=null && !ta.getDealType ().equals(""))
        {
            strWhere.append(" and dealType="+ta.getDealType ());
        }
        //交易状态
        if(ta.getDealState ()!=null && !ta.getDealState ().equals(""))
        {
            strWhere.append(" and dealState="+ta.getDealState ());
        }
        return  strWhere.toString();
    }
}
